﻿// Copyright (C) 2007 Blue Onion Software
// All rights reserved

using System;
using System.Web.Security;

namespace BlueOnionSoftware.Bloget
{
    public class UserCollection
    {
    //    const string invalidUserName = "User name is not a valid format";

    //    internal UserCollection()
    //    {
    //    }

    //    protected override Guid GetKeyForItem(User item)
    //    {
    //        return item.Id;
    //    }

    //    internal UserCollection(IEnumerable<User> userCollection)
    //    {
    //        foreach (User user in userCollection)
    //        {
    //            Add(new User(user));
    //        }
    //    }

    //    protected override void InsertItem(int index, User item)
    //    {
    //        if (item.IsValid() == false)
    //        {
    //            throw new InvalidOperationException("Attempt to insert invalid user to user collection");
    //        }

    //        if (ContainsName(item.Name))
    //        {
    //            throw new InvalidOperationException("Already contains user name");
    //        }

    //        base.InsertItem(index, item);
    //    }

    //    protected override void SetItem(int index, User item)
    //    {
    //        if (item.IsValid() == false)
    //        {
    //            throw new InvalidOperationException("Attempt to set invalid user to user collection");
    //        }

    //        if (ContainsName(item.Name))
    //        {
    //            throw new InvalidOperationException("Already contains user name");
    //        }

    //        base.SetItem(index, item);
    //    }

    //    internal bool ContainsName(string name)
    //    {
    //        if (User.ValidateString(name) == false)
    //        {
    //            throw new ArgumentException(invalidUserName, "name");
    //        }

    //        return GetUserByName(name) != null;
    //    }

    //    internal bool ValidateUser(string name, string password)
    //    {
    //        if (User.ValidateString(name) == false)
    //        {
    //            throw new ArgumentException(invalidUserName, "name");
    //        }

    //        if (User.ValidateString(password) == false)
    //        {
    //            throw new ArgumentException("Invalid password format", "password");
    //        }

    //        User user = GetUserByName(name);

    //        if (user != null)
    //        {
    //            return user.ValidatePassword(password);
    //        }

    //        return false;
    //    }

    //    internal User GetUserByName(string name)
    //    {
    //        if (User.ValidateString(name) == false)
    //        {
    //            throw new ArgumentException(invalidUserName, "name");
    //        }

    //        name = name.Trim();

    //        foreach (User user in this)
    //        {
    //            if (string.Equals(user.Name, name, StringComparison.OrdinalIgnoreCase))
    //            {
    //                return user;
    //            }
    //        }

    //        return null;
    //    }
    }
}
